import { customRef } from "vue"

export default (initValue:string,delay:number) => {
    let timer:number
    let customMsg = customRef((track,trigger)=>{
        return {
            //数据被读取时调用
            get() {
                track()//告诉vue需要持续关注
                return initValue
            },
            //数据修改时调用
            set(v){
                clearTimeout(timer)
                timer = setTimeout(()=>{
                    trigger() //通知vue数据变化了
                    initValue = v
                }, delay)
            }
        }
    })
    return {
        customMsg
    }
}
